package com.penghaisoft.microwms.product.dao;

import com.penghaisoft.microwms.common.dto.ProCountingDto;
import com.penghaisoft.microwms.common.dto.ProStorageDto;
import com.penghaisoft.microwms.common.mapper.BaseMapper;
import com.penghaisoft.microwms.common.page.Pager;
import com.penghaisoft.microwms.common.wms.model.ProStorageSn;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description 成品库存明细表
 * @author luoteng
 * @date 2018年6月6日 下午2:43:41 
 * @version 1.0
 */
public interface ProStorageSnMapper  extends BaseMapper<ProStorageSn>{
	long queryStorageListCount(@Param("entity") ProStorageDto condition);
	
	List<ProStorageDto> queryStorageList(@Param("page") Pager<ProStorageDto> pager, @Param("entity") ProStorageDto rawStorageDto);

	List<ProStorageSn> queryLose(@Param("entity") ProCountingDto proCountingDto);
	
	/** 
	 * @Title updateByBarcodeStatus0
	 * @Description 状态为0的条码完成出库更新[0：可用 1：冻结 2：已出库 3：抽检冻结]
	 * @author luoteng
	 * @date 2018年6月14日:下午4:29:48
	 * @param t
	 * @return Integer
	 */
	public Integer updateByBarcodeStatus0(@Param("entity") ProStorageSn t);
	
	/** 
	 * @Title updateByBarcodeStatus2
	 * @Description 状态为2的条码完成出库更新[0：可用 1：冻结 2：已出库 3：抽检冻结]
	 * @author luoteng
	 * @date 2018年6月14日:下午5:51:43
	 * @param t
	 * @return Integer
	 */
	public Integer updateByBarcodeStatus2(@Param("entity") ProStorageSn t);

	List<ProStorageSn> queryProStorageSnByCondition(@Param("entity") ProStorageSn proStorageSn);
	
	List<ProStorageSn> queryProStorageSnByCondition2(@Param("entity") ProStorageSn proStorageSn);

	Integer updateOpenClose(@Param("entity") ProStorageSn proStorageSn);

	Integer updateWlByCode(@Param("entity") ProStorageSn proStorageSn);
	
	public Integer updateContractNoBySelect(@Param("entity") ProStorageSn t);
	
	public ProStorageDto queryTotal(@Param("entity") ProStorageDto condition);

	/**
	 * 报废出库，将activeFlag设为0
	 * @param proStorageSn
	 * @return
     */
	public Integer updateByBarcode(@Param("entity") ProStorageSn proStorageSn);
	
	public Integer updateByBarcode0(@Param("entity") ProStorageSn proStorageSn);

	List<ProStorageSn> queryProStorageSnByCondition3(@Param("entity") ProStorageSn proStorageSn);
}